Report authors commonly have a need to display related data from multiple sources. In some cases, the related data can be joined into a single query which returns a single dataset for use in the report. In many cases, however, the underlying data provider does not support such joins or the related data is in heterogeneous systems. In this case, report authors have an expectation that the “join” be performed within the report itself. In addition, when there are multiple different sets of dependent data (“multiple master-detail”—the master dataset contains the master data and the child datasets contain the detail data), even if the data provider supports joins it is neither practical nor efficient to join all of the data together in the query and then attempt to re-segment the data within the report.
With respect to support for natively hierarchical datasets, reporting systems currently support only tabular rowsets as data in datasets. For data sources which natively support hierarchical data, this mismatch requires a flattening process to be performed on the data by the reporting system before the data can be utilized within the report. Depending on the style of flattening, this can have undesired effects. Either the data is limited to a single branch of the hierarchy, which requires multiple queries to be executed in subreports to re-correlate the data, or the data is diagonalized, which requires careful placement of filters within the report to re-segment the data.